<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Binding Properties Functions: exo Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="exo Reference Manual">
<link rel="up" href="exo-miscelleanous.html" title="Part VI. Miscelleanous">
<link rel="prev" href="exo-Version-Information.html" title="Version Information">
<link rel="next" href="exo-Executing-Applications.html" title="Executing Applications">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#exo-Binding-Properties-Functions.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="exo-miscelleanous.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="exo-Version-Information.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="exo-Executing-Applications.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="exo-Binding-Properties-Functions"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="exo-Binding-Properties-Functions.top_of_page"></a>Binding Properties Functions</span></h2>
<p>Binding Properties Functions — Functions used to bind two object properties together</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="exo-Binding-Properties-Functions.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="exo-Binding-Properties-Functions.html#ExoBindingTransform" title="ExoBindingTransform ()">*ExoBindingTransform</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="exo-Binding-Properties-Functions.html#ExoBinding" title="ExoBinding"><span class="returnvalue">ExoBinding</span></a> *
</td>
<td class="function_name">
<a class="link" href="exo-Binding-Properties-Functions.html#exo-binding-new" title="exo_binding_new ()">exo_binding_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="exo-Binding-Properties-Functions.html#ExoBinding" title="ExoBinding"><span class="returnvalue">ExoBinding</span></a> *
</td>
<td class="function_name">
<a class="link" href="exo-Binding-Properties-Functions.html#exo-binding-new-full" title="exo_binding_new_full ()">exo_binding_new_full</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="exo-Binding-Properties-Functions.html#ExoBinding" title="ExoBinding"><span class="returnvalue">ExoBinding</span></a> *
</td>
<td class="function_name">
<a class="link" href="exo-Binding-Properties-Functions.html#exo-binding-new-with-negation" title="exo_binding_new_with_negation ()">exo_binding_new_with_negation</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="exo-Binding-Properties-Functions.html#exo-binding-unbind" title="exo_binding_unbind ()">exo_binding_unbind</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="exo-Binding-Properties-Functions.html#ExoMutualBinding" title="ExoMutualBinding"><span class="returnvalue">ExoMutualBinding</span></a> *
</td>
<td class="function_name">
<a class="link" href="exo-Binding-Properties-Functions.html#exo-mutual-binding-new" title="exo_mutual_binding_new ()">exo_mutual_binding_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="exo-Binding-Properties-Functions.html#ExoMutualBinding" title="ExoMutualBinding"><span class="returnvalue">ExoMutualBinding</span></a> *
</td>
<td class="function_name">
<a class="link" href="exo-Binding-Properties-Functions.html#exo-mutual-binding-new-full" title="exo_mutual_binding_new_full ()">exo_mutual_binding_new_full</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="exo-Binding-Properties-Functions.html#ExoMutualBinding" title="ExoMutualBinding"><span class="returnvalue">ExoMutualBinding</span></a> *
</td>
<td class="function_name">
<a class="link" href="exo-Binding-Properties-Functions.html#exo-mutual-binding-new-with-negation" title="exo_mutual_binding_new_with_negation ()">exo_mutual_binding_new_with_negation</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="exo-Binding-Properties-Functions.html#exo-mutual-binding-unbind" title="exo_mutual_binding_unbind ()">exo_mutual_binding_unbind</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="exo-Binding-Properties-Functions.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="exo-Binding-Properties-Functions.html#ExoBinding" title="ExoBinding">ExoBinding</a></td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="exo-Binding-Properties-Functions.html#ExoMutualBinding" title="ExoMutualBinding">ExoMutualBinding</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="exo-Binding-Properties-Functions.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;exo/exo.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="exo-Binding-Properties-Functions.description"></a><h2>Description</h2>
<p>Binding properties is synchronizing values of several properties,
so that when one of the bound properties changes, the other
bound properties are automatically changed to the new value as
well. These functions eliminate the need to write property
change notification callbacks manually. It also increases the
reliability of your project as you don't need to repeat similar
code (and errors) manually.</p>
<p>Both uni-directional and mutual
bindings are supported and you can specify functions to perform
explicit transformation of values if required. Multiple properties
can be bound together in a complex way and infinite loops are
eliminated automatically.</p>
<p>For example, lets say, your program has a <span class="type">GtkEntry</span> widget that allows
the user to enter some text for the program, but this entry widget should
only be sensitive if a <span class="type">GtkCheckButton</span> is active.</p>
<div class="example">
<a name="id-1.7.3.6.5"></a><p class="title"><b>Example 2. Connecting a <span class="structname">GtkCheckButton</span> and a
<span class="structname">GtkEntry</span></b></p>
<div class="example-contents">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="p">{</span><span class="w"></span>
<span class="w">  </span><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="n">button</span><span class="p">;</span><span class="w"></span>
<span class="w">  </span><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="n">entry</span><span class="p">;</span><span class="w"></span>

<span class="w">  </span><span class="n">button</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_check_button_new_with_label</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;Activate me&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w">  </span><span class="n">entry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_entry_new</span><span class="w"> </span><span class="p">();</span><span class="w"></span>

<span class="w">  </span><span class="n">exo_binding_new</span><span class="w"> </span><span class="p">(</span><span class="n">G_OBJECT</span><span class="w"> </span><span class="p">(</span><span class="n">button</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;active&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w">                   </span><span class="n">G_OBJECT</span><span class="w"> </span><span class="p">(</span><span class="n">entry</span><span class="p">),</span><span class="w"> </span><span class="s">&quot;sensitive&quot;</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

</div>
<br class="example-break"><p>As you can see, all you need to do is to call one function to connect
the sensitivity of the entry widget with the state of the check
button. No need to write signal handlers for this purpose any more.</p>
</div>
<div class="refsect1">
<a name="exo-Binding-Properties-Functions.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="ExoBindingTransform"></a><h3>ExoBindingTransform ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
<span class="c_punctuation">(</span>*ExoBindingTransform<span class="c_punctuation">)</span> (<em class="parameter"><code>const <span class="type">GValue</span> *src_value</code></em>,
                        <em class="parameter"><code><span class="type">GValue</span> *dst_value</code></em>,
                        <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Function type used for binding transformation functions.</p>
<p>Accomplished transformation from <em class="parameter"><code>src_value</code></em>
 to <em class="parameter"><code>dst_value</code></em>
.
<em class="parameter"><code>src_value</code></em>
 and <em class="parameter"><code>dst_value</code></em>
 are already initialized before
this function gets called.</p>
<div class="refsect3">
<a name="ExoBindingTransform.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>src_value</p></td>
<td class="parameter_description"><p>Value to transform.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dst_value</p></td>
<td class="parameter_description"><p>Value to store the result of the transformation into.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>User data supplied at binding creation.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ExoBindingTransform.returns"></a><h4>Returns</h4>
<p> <code class="literal">FALSE</code> if transformation failed, else <code class="literal">TRUE</code>.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="exo-binding-new"></a><h3>exo_binding_new ()</h3>
<pre class="programlisting"><a class="link" href="exo-Binding-Properties-Functions.html#ExoBinding" title="ExoBinding"><span class="returnvalue">ExoBinding</span></a> *
exo_binding_new (<em class="parameter"><code><span class="type">GObject</span> *src_object</code></em>,
                 <em class="parameter"><code>const <span class="type">gchar</span> *src_property</code></em>,
                 <em class="parameter"><code><span class="type">GObject</span> *dst_object</code></em>,
                 <em class="parameter"><code>const <span class="type">gchar</span> *dst_property</code></em>);</pre>
<div class="warning">
<p><code class="literal">exo_binding_new</code> is deprecated and should not be used in newly-written code.</p>
<p>xfce 4.18: In favor of GBinding</p>
</div>
<p>One-way binds <em class="parameter"><code>src_property</code></em>
 in <em class="parameter"><code>src_object</code></em>
 to <em class="parameter"><code>dst_property</code></em>

in <em class="parameter"><code>dst_object</code></em>
.</p>
<p>Before binding the value of <em class="parameter"><code>dst_property</code></em>
 is set to the
value of <em class="parameter"><code>src_property</code></em>
.</p>
<div class="refsect3">
<a name="exo-binding-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>src_object</p></td>
<td class="parameter_description"><p>The source <span class="type">GObject</span>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>src_property</p></td>
<td class="parameter_description"><p>The name of the property to bind from.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dst_object</p></td>
<td class="parameter_description"><p>The destination <span class="type">GObject</span>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dst_property</p></td>
<td class="parameter_description"><p>The name of the property to bind to.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="exo-binding-new.returns"></a><h4>Returns</h4>
<p> The descriptor of the binding. It is automatically
removed if one of the objects is finalized.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="exo-binding-new-full"></a><h3>exo_binding_new_full ()</h3>
<pre class="programlisting"><a class="link" href="exo-Binding-Properties-Functions.html#ExoBinding" title="ExoBinding"><span class="returnvalue">ExoBinding</span></a> *
exo_binding_new_full (<em class="parameter"><code><span class="type">GObject</span> *src_object</code></em>,
                      <em class="parameter"><code>const <span class="type">gchar</span> *src_property</code></em>,
                      <em class="parameter"><code><span class="type">GObject</span> *dst_object</code></em>,
                      <em class="parameter"><code>const <span class="type">gchar</span> *dst_property</code></em>,
                      <em class="parameter"><code><a class="link" href="exo-Binding-Properties-Functions.html#ExoBindingTransform" title="ExoBindingTransform ()"><span class="type">ExoBindingTransform</span></a> transform</code></em>,
                      <em class="parameter"><code><span class="type">GDestroyNotify</span> destroy_notify</code></em>,
                      <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<div class="warning">
<p><code class="literal">exo_binding_new_full</code> is deprecated and should not be used in newly-written code.</p>
<p>xfce 4.18: In favor of GBinding</p>
</div>
<p>One-way binds <em class="parameter"><code>src_property</code></em>
 in <em class="parameter"><code>src_object</code></em>
 to <em class="parameter"><code>dst_property</code></em>

in <em class="parameter"><code>dst_object</code></em>
.</p>
<p>Before binding the value of <em class="parameter"><code>dst_property</code></em>
 is set to the
value of <em class="parameter"><code>src_property</code></em>
.</p>
<div class="refsect3">
<a name="exo-binding-new-full.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>src_object</p></td>
<td class="parameter_description"><p>The source <span class="type">GObject</span>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>src_property</p></td>
<td class="parameter_description"><p>The name of the property to bind from.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dst_object</p></td>
<td class="parameter_description"><p>The destination <span class="type">GObject</span>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dst_property</p></td>
<td class="parameter_description"><p>The name of the property to bind to.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>transform</p></td>
<td class="parameter_description"><p>Transformation function or <code class="literal">NULL</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>destroy_notify</p></td>
<td class="parameter_description"><p>Callback function that is called on disconnection with <em class="parameter"><code>user_data</code></em>
or <code class="literal">NULL</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>User data associated with the binding.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="exo-binding-new-full.returns"></a><h4>Returns</h4>
<p> The descriptor of the binding. It is automatically
removed if one of the objects is finalized.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="exo-binding-new-with-negation"></a><h3>exo_binding_new_with_negation ()</h3>
<pre class="programlisting"><a class="link" href="exo-Binding-Properties-Functions.html#ExoBinding" title="ExoBinding"><span class="returnvalue">ExoBinding</span></a> *
exo_binding_new_with_negation (<em class="parameter"><code><span class="type">GObject</span> *src_object</code></em>,
                               <em class="parameter"><code>const <span class="type">gchar</span> *src_property</code></em>,
                               <em class="parameter"><code><span class="type">GObject</span> *dst_object</code></em>,
                               <em class="parameter"><code>const <span class="type">gchar</span> *dst_property</code></em>);</pre>
<div class="warning">
<p><code class="literal">exo_binding_new_with_negation</code> is deprecated and should not be used in newly-written code.</p>
<p>xfce 4.18: In favor of GBinding</p>
</div>
<p>Convenience function for binding with boolean negation of value.</p>
<div class="refsect3">
<a name="exo-binding-new-with-negation.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>src_object</p></td>
<td class="parameter_description"><p>The source <span class="type">GObject</span>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>src_property</p></td>
<td class="parameter_description"><p>The name of the property to bind from.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dst_object</p></td>
<td class="parameter_description"><p>The destination <span class="type">GObject</span>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dst_property</p></td>
<td class="parameter_description"><p>The name of the property to bind to.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="exo-binding-new-with-negation.returns"></a><h4>Returns</h4>
<p> The descriptor of the binding. It is automatically
removed if one of the objects is finalized.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="exo-binding-unbind"></a><h3>exo_binding_unbind ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
exo_binding_unbind (<em class="parameter"><code><a class="link" href="exo-Binding-Properties-Functions.html#ExoBinding" title="ExoBinding"><span class="type">ExoBinding</span></a> *binding</code></em>);</pre>
<div class="warning">
<p><code class="literal">exo_binding_unbind</code> is deprecated and should not be used in newly-written code.</p>
<p>xfce 4.18: In favor of GBinding</p>
</div>
<p>Disconnects the binding between two properties. Should be
rarely used by applications.</p>
<p>This functions also calls the <em class="parameter"><code>destroy_notify</code></em>
 function that
was specified when <em class="parameter"><code>binding</code></em>
 was created.</p>
<div class="refsect3">
<a name="exo-binding-unbind.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>binding</p></td>
<td class="parameter_description"><p>An <a class="link" href="exo-Binding-Properties-Functions.html#ExoBinding" title="ExoBinding"><span class="type">ExoBinding</span></a> to unbind.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="exo-mutual-binding-new"></a><h3>exo_mutual_binding_new ()</h3>
<pre class="programlisting"><a class="link" href="exo-Binding-Properties-Functions.html#ExoMutualBinding" title="ExoMutualBinding"><span class="returnvalue">ExoMutualBinding</span></a> *
exo_mutual_binding_new (<em class="parameter"><code><span class="type">GObject</span> *object1</code></em>,
                        <em class="parameter"><code>const <span class="type">gchar</span> *property1</code></em>,
                        <em class="parameter"><code><span class="type">GObject</span> *object2</code></em>,
                        <em class="parameter"><code>const <span class="type">gchar</span> *property2</code></em>);</pre>
<div class="warning">
<p><code class="literal">exo_mutual_binding_new</code> is deprecated and should not be used in newly-written code.</p>
<p>xfce 4.18: In favor of GBinding</p>
</div>
<p>Mutually binds values of two properties.</p>
<p>Before binding the value of <em class="parameter"><code>property2</code></em>
 is set to the value
of <em class="parameter"><code>property1</code></em>
.</p>
<div class="refsect3">
<a name="exo-mutual-binding-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>object1</p></td>
<td class="parameter_description"><p>The first <span class="type">GObject</span>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>property1</p></td>
<td class="parameter_description"><p>The first property to bind.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>object2</p></td>
<td class="parameter_description"><p>The second <span class="type">GObject</span>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>property2</p></td>
<td class="parameter_description"><p>The second property to bind.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="exo-mutual-binding-new.returns"></a><h4>Returns</h4>
<p> The descriptor of the binding. It is automatically
removed if one of the objects is finalized.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="exo-mutual-binding-new-full"></a><h3>exo_mutual_binding_new_full ()</h3>
<pre class="programlisting"><a class="link" href="exo-Binding-Properties-Functions.html#ExoMutualBinding" title="ExoMutualBinding"><span class="returnvalue">ExoMutualBinding</span></a> *
exo_mutual_binding_new_full (<em class="parameter"><code><span class="type">GObject</span> *object1</code></em>,
                             <em class="parameter"><code>const <span class="type">gchar</span> *property1</code></em>,
                             <em class="parameter"><code><span class="type">GObject</span> *object2</code></em>,
                             <em class="parameter"><code>const <span class="type">gchar</span> *property2</code></em>,
                             <em class="parameter"><code><a class="link" href="exo-Binding-Properties-Functions.html#ExoBindingTransform" title="ExoBindingTransform ()"><span class="type">ExoBindingTransform</span></a> transform</code></em>,
                             <em class="parameter"><code><a class="link" href="exo-Binding-Properties-Functions.html#ExoBindingTransform" title="ExoBindingTransform ()"><span class="type">ExoBindingTransform</span></a> reverse_transform</code></em>,
                             <em class="parameter"><code><span class="type">GDestroyNotify</span> destroy_notify</code></em>,
                             <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<div class="warning">
<p><code class="literal">exo_mutual_binding_new_full</code> is deprecated and should not be used in newly-written code.</p>
<p>xfce 4.18: In favor of GBinding</p>
</div>
<p>Mutually binds values of two properties.</p>
<p>Before binding the value of <em class="parameter"><code>property2</code></em>
 is set to the value of
<em class="parameter"><code>property1</code></em>
.</p>
<p>Both <em class="parameter"><code>transform</code></em>
 and <em class="parameter"><code>reverse_transform</code></em>
 should simultaneously be
<code class="literal">NULL</code> or non-<code class="literal">NULL</code>. If they are non-<code class="literal">NULL</code>, they should be reverse
in each other.</p>
<div class="refsect3">
<a name="exo-mutual-binding-new-full.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>object1</p></td>
<td class="parameter_description"><p>The first <span class="type">GObject</span>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>property1</p></td>
<td class="parameter_description"><p>The first property to bind.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>object2</p></td>
<td class="parameter_description"><p>The second <span class="type">GObject</span>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>property2</p></td>
<td class="parameter_description"><p>The second property to bind.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>transform</p></td>
<td class="parameter_description"><p>Transformation function or <code class="literal">NULL</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>reverse_transform</p></td>
<td class="parameter_description"><p>The inverse transformation function or <code class="literal">NULL</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>destroy_notify</p></td>
<td class="parameter_description"><p>Callback function called on disconnection with <em class="parameter"><code>user_data</code></em>
as argument or <code class="literal">NULL</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>User data associated with the binding.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="exo-mutual-binding-new-full.returns"></a><h4>Returns</h4>
<p> The descriptor of the binding. It is automatically
removed if one of the objects is finalized.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="exo-mutual-binding-new-with-negation"></a><h3>exo_mutual_binding_new_with_negation ()</h3>
<pre class="programlisting"><a class="link" href="exo-Binding-Properties-Functions.html#ExoMutualBinding" title="ExoMutualBinding"><span class="returnvalue">ExoMutualBinding</span></a> *
exo_mutual_binding_new_with_negation (<em class="parameter"><code><span class="type">GObject</span> *object1</code></em>,
                                      <em class="parameter"><code>const <span class="type">gchar</span> *property1</code></em>,
                                      <em class="parameter"><code><span class="type">GObject</span> *object2</code></em>,
                                      <em class="parameter"><code>const <span class="type">gchar</span> *property2</code></em>);</pre>
<div class="warning">
<p><code class="literal">exo_mutual_binding_new_with_negation</code> is deprecated and should not be used in newly-written code.</p>
<p>xfce 4.18: In favor of GBinding</p>
</div>
<p>Convenience function for binding with boolean negation of value.</p>
<div class="refsect3">
<a name="exo-mutual-binding-new-with-negation.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>object1</p></td>
<td class="parameter_description"><p>The first <span class="type">GObject</span>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>property1</p></td>
<td class="parameter_description"><p>The first property to bind.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>object2</p></td>
<td class="parameter_description"><p>The second <span class="type">GObject</span>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>property2</p></td>
<td class="parameter_description"><p>The second property to bind.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="exo-mutual-binding-new-with-negation.returns"></a><h4>Returns</h4>
<p> The descriptor of the binding. It is automatically removed
if one of the objects if finalized.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="exo-mutual-binding-unbind"></a><h3>exo_mutual_binding_unbind ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
exo_mutual_binding_unbind (<em class="parameter"><code><a class="link" href="exo-Binding-Properties-Functions.html#ExoMutualBinding" title="ExoMutualBinding"><span class="type">ExoMutualBinding</span></a> *binding</code></em>);</pre>
<div class="warning">
<p><code class="literal">exo_mutual_binding_unbind</code> is deprecated and should not be used in newly-written code.</p>
<p>xfce 4.18: In favor of GBinding</p>
</div>
<p>Disconnects the binding between two properties. Should be
rarely used by applications.</p>
<p>This functions also calls the <em class="parameter"><code>destroy_notify</code></em>
 function that
was specified when <em class="parameter"><code>binding</code></em>
 was created.</p>
<div class="refsect3">
<a name="exo-mutual-binding-unbind.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>binding</p></td>
<td class="parameter_description"><p>An <a class="link" href="exo-Binding-Properties-Functions.html#ExoMutualBinding" title="ExoMutualBinding"><span class="type">ExoMutualBinding</span></a> to unbind.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="exo-Binding-Properties-Functions.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="ExoBinding"></a><h3>ExoBinding</h3>
<pre class="programlisting">typedef struct _ExoBinding ExoBinding;</pre>
<div class="warning">
<p><code class="literal">ExoBinding</code> is deprecated and should not be used in newly-written code.</p>
<p>xfce 4.18: In favor of GBinding</p>
</div>
<p>Opaque structure representing a one-way binding between two properties.
It is automatically removed if one of the bound objects is finalized.</p>
</div>
<hr>
<div class="refsect2">
<a name="ExoMutualBinding"></a><h3>ExoMutualBinding</h3>
<pre class="programlisting">typedef struct _ExoMutualBinding ExoMutualBinding;</pre>
<div class="warning">
<p><code class="literal">ExoMutualBinding</code> is deprecated and should not be used in newly-written code.</p>
<p>xfce 4.18: In favor of GBinding</p>
</div>
<p>Opaque structure representing a mutual binding between two properties.
It is automatically freed if one of the bound objects is finalized.</p>
</div>
</div>
<div class="refsect1">
<a name="exo-Binding-Properties-Functions.see-also"></a><h2>See Also</h2>
<a class="ulink" href="http://library.gnome.org/devel/gobject/stable/" target="_top">
GObject Reference Manual</a>,
<a class="link" href="exo-Extensions-to-GObject.html" title="Extensions to GObject">Extensions to GObject</a>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>